home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-13 / thesrc10.zip / KEY.H < prev    next >
C/C++ Source or Header  |  1992-08-11  |  27KB  |  620 lines

  1. /*
  2.  * THE - The Hessling Editor. A text editor similar to VM/CMS xedit.
  3.  * Copyright (C) 1991,1992 Mark Hessling
  4.  *
  5.  * This program is free software; you can redistribute it and/or
  6.  * modify it under the terms of the GNU General Public License as
  7.  * published by the Free Software Foundation; either version 2 of
  8.  * the License, or any later version.
  9.  *
  10.  * This program is distributed in the hope that it will be useful,
  11.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  13.  * General Public License for more details.
  14.  *
  15.  * You should have received a copy of the GNU General Public License
  16.  * along with this program; if not, write to:
  17.  *
  18.  *    The Free Software Foundation, Inc.
  19.  *    675 Mass Ave,
  20.  *    Cambridge, MA 02139 USA.
  21.  *
  22.  *
  23.  * If you make modifications to this software that you feel increases
  24.  * it usefulness for the rest of the community, please email the
  25.  * changes, enhancements, bug fixes as well as any and all ideas to me.
  26.  * This software is going to be maintained and enhanced as deemed
  27.  * necessary by the community.
  28.  *
  29.  * Mark Hessling                     email: M.Hessling@itc.gu.edu.au
  30.  * 36 David Road                     Phone: +61 7 849 7731
  31.  * Holland Park                      Fax:   +61 7 875 7877
  32.  * QLD 4121
  33.  * Australia
  34.  */
  35. #include "getch.h"
  36.  
  37. struct key_values
  38. {
  39.  unsigned char *mnemonic;
  40.  unsigned short key_value;
  41. };
  42. typedef struct key_values KEYS;
  43.  
  44. #if defined(DOS) || defined(OS2)
  45. #define MAX_NUMBER_KEYS 312
  46. #else
  47. #define MAX_NUMBER_KEYS 248
  48. #endif
  49.  
  50. KEYS key_table[MAX_NUMBER_KEYS] =
  51. {
  52. #if defined(DOS) || defined(OS2)
  53. /* normal characters */
  54.   {(unsigned char *)"A",KEY_a },
  55.   {(unsigned char *)"B",KEY_b },
  56.   {(unsigned char *)"C",KEY_c },
  57.   {(unsigned char *)"D",KEY_d },
  58.   {(unsigned char *)"E",KEY_e },
  59.   {(unsigned char *)"F",KEY_f },
  60.   {(unsigned char *)"G",KEY_g },
  61.   {(unsigned char *)"H",KEY_h },
  62.   {(unsigned char *)"I",KEY_i },
  63.   {(unsigned char *)"J",KEY_j },
  64.   {(unsigned char *)"K",KEY_k },
  65.   {(unsigned char *)"L",KEY_l },
  66.   {(unsigned char *)"M",KEY_m },
  67.   {(unsigned char *)"N",KEY_n },
  68.   {(unsigned char *)"O",KEY_o },
  69.   {(unsigned char *)"P",KEY_p },
  70.   {(unsigned char *)"Q",KEY_q },
  71.   {(unsigned char *)"R",KEY_r },
  72.   {(unsigned char *)"S",KEY_s },
  73.   {(unsigned char *)"T",KEY_t },
  74.   {(unsigned char *)"U",KEY_u },
  75.   {(unsigned char *)"V",KEY_v },
  76.   {(unsigned char *)"W",KEY_w },
  77.   {(unsigned char *)"X",KEY_x },
  78.   {(unsigned char *)"Y",KEY_y },
  79.   {(unsigned char *)"Z",KEY_z },
  80.   {(unsigned char *)"0",KEY_0 },
  81.   {(unsigned char *)"1",KEY_1 },
  82.   {(unsigned char *)"2",KEY_2 },
  83.   {(unsigned char *)"3",KEY_3 },
  84.   {(unsigned char *)"4",KEY_4 },
  85.   {(unsigned char *)"5",KEY_5 },
  86.   {(unsigned char *)"6",KEY_6 },
  87.   {(unsigned char *)"7",KEY_7 },
  88.   {(unsigned char *)"8",KEY_8 },
  89.   {(unsigned char *)"9",KEY_9 },
  90.   {(unsigned char *)"`",KEY_BQUOTE },
  91.   {(unsigned char *)"-",KEY_MINUS },
  92.   {(unsigned char *)"=",KEY_EQUAL },
  93.   {(unsigned char *)"[",KEY_LBRACKET },
  94.   {(unsigned char *)"]",KEY_RBRACKET },
  95.   {(unsigned char *)"\\",KEY_BSLASH },
  96.   {(unsigned char *)";",KEY_SEMICOLON },
  97.   {(unsigned char *)"'",KEY_FQUOTE },
  98.   {(unsigned char *)",",KEY_COMMA },
  99.   {(unsigned char *)".",KEY_STOP },
  100.   {(unsigned char *)"/",KEY_FSLASH },
  101.   {(unsigned char *)"SPACE",KEY_SPACE },
  102.   {(unsigned char *)"ENTER",KEY_ENTER },
  103.   {(unsigned char *)"TAB",KEY_TAB },
  104.   {(unsigned char *)"ESC",KEY_ESC },
  105.   {(unsigned char *)"BKSP",KEY_BKSP },
  106.   {(unsigned char *)"F1",KEY_F1},
  107.   {(unsigned char *)"F2",KEY_F2},
  108.   {(unsigned char *)"F3",KEY_F3},
  109.   {(unsigned char *)"F4",KEY_F4},
  110.   {(unsigned char *)"F5",KEY_F5},
  111.   {(unsigned char *)"F6",KEY_F6},
  112.   {(unsigned char *)"F7",KEY_F7},
  113.   {(unsigned char *)"F8",KEY_F8},
  114.   {(unsigned char *)"F9",KEY_F9},
  115.   {(unsigned char *)"F10",KEY_F10},
  116.   {(unsigned char *)"F11",KEY_F11},
  117.   {(unsigned char *)"F12",KEY_F12},
  118.   {(unsigned char *)"HOME",KEY_HOME},
  119.   {(unsigned char *)"PGUP",KEY_PGUP},
  120.   {(unsigned char *)"PGDN",KEY_PGDN},
  121.   {(unsigned char *)"CURU",KEY_CURU},
  122.   {(unsigned char *)"CURD",KEY_CURD},
  123.   {(unsigned char *)"CURL",KEY_CURL},
  124.   {(unsigned char *)"CURR",KEY_CURR},
  125.   {(unsigned char *)"END",KEY_END},
  126.   {(unsigned char *)"INS",KEY_INS},
  127.   {(unsigned char *)"DEL",KEY_DEL},
  128.   {(unsigned char *)"CENTER",KEY_NUMCENTER },
  129.   {(unsigned char *)"PLUS",KEY_NUMPLUS},
  130.   {(unsigned char *)"MINUS",KEY_NUMMINUS},
  131.   {(unsigned char *)"SLASH",KEY_NUMSLASH},
  132.   {(unsigned char *)"STAR",KEY_NUMSTAR},
  133.   {(unsigned char *)"NUMENTER",KEY_NUMENTER},
  134. /* shifted characters */
  135.   {(unsigned char *)"S-A",KEY_S_a  },
  136.   {(unsigned char *)"S-B",KEY_S_b  },
  137.   {(unsigned char *)"S-C",KEY_S_c  },
  138.   {(unsigned char *)"S-D",KEY_S_d  },
  139.   {(unsigned char *)"S-E",KEY_S_e  },
  140.   {(unsigned char *)"S-F",KEY_S_f  },
  141.   {(unsigned char *)"S-G",KEY_S_g  },
  142.   {(unsigned char *)"S-H",KEY_S_h  },
  143.   {(unsigned char *)"S-I",KEY_S_i  },
  144.   {(unsigned char *)"S-J",KEY_S_j  },
  145.   {(unsigned char *)"S-K",KEY_S_k  },
  146.   {(unsigned char *)"S-L",KEY_S_l  },
  147.   {(unsigned char *)"S-M",KEY_S_m  },
  148.   {(unsigned char *)"S-N",KEY_S_n  },
  149.   {(unsigned char *)"S-O",KEY_S_o  },
  150.   {(unsigned char *)"S-P",KEY_S_p  },
  151.   {(unsigned char *)"S-Q",KEY_S_q  },
  152.   {(unsigned char *)"S-R",KEY_S_r  },
  153.   {(unsigned char *)"S-S",KEY_S_s  },
  154.   {(unsigned char *)"S-T",KEY_S_t  },
  155.   {(unsigned char *)"S-U",KEY_S_u  },
  156.   {(unsigned char *)"S-V",KEY_S_v  },
  157.   {(unsigned char *)"S-W",KEY_S_w  },
  158.   {(unsigned char *)"S-X",KEY_S_x  },
  159.   {(unsigned char *)"S-Y",KEY_S_y  },
  160.   {(unsigned char *)"S-Z",KEY_S_z  },
  161.   {(unsigned char *)"S-0",KEY_S_0  },
  162.   {(unsigned char *)"S-1",KEY_S_1  },
  163.   {(unsigned char *)"S-2",KEY_S_2  },
  164.   {(unsigned char *)"S-3",KEY_S_3  },
  165.   {(unsigned char *)"S-4",KEY_S_4  },
  166.   {(unsigned char *)"S-5",KEY_S_5  },
  167.   {(unsigned char *)"S-6",KEY_S_6  },
  168.   {(unsigned char *)"S-7",KEY_S_7  },
  169.   {(unsigned char *)"S-8",KEY_S_8  },
  170.   {(unsigned char *)"S-9",KEY_S_9  },
  171.   {(unsigned char *)"S-`",KEY_S_BQUOTE  },
  172.   {(unsigned char *)"S--",KEY_S_MINUS  },
  173.   {(unsigned char *)"S-=",KEY_S_EQUAL  },
  174.   {(unsigned char *)"S-[",KEY_S_LBRACKET  },
  175.   {(unsigned char *)"S-]",KEY_S_RBRACKET  },
  176.   {(unsigned char *)"S-\\",KEY_S_BSLASH  },
  177.   {(unsigned char *)"S-;",KEY_S_SEMICOLON  },
  178.   {(unsigned char *)"S-'",KEY_S_FQUOTE  },
  179.   {(unsigned char *)"S-,",KEY_S_COMMA  },
  180.   {(unsigned char *)"S-.",KEY_S_STOP  },
  181.   {(unsigned char *)"S-/",KEY_S_FSLASH  },
  182.   {(unsigned char *)"S-TAB",KEY_S_TAB },
  183.   {(unsigned char *)"S-F1",KEY_S_F1},
  184.   {(unsigned char *)"S-F2",KEY_S_F2},
  185.   {(unsigned char *)"S-F3",KEY_S_F3},
  186.   {(unsigned char *)"S-F4",KEY_S_F4},
  187.   {(unsigned char *)"S-F5",KEY_S_F5},
  188.   {(unsigned char *)"S-F6",KEY_S_F6},
  189.   {(unsigned char *)"S-F7",KEY_S_F7},
  190.   {(unsigned char *)"S-F8",KEY_S_F8},
  191.   {(unsigned char *)"S-F9",KEY_S_F9},
  192.   {(unsigned char *)"S-F10",KEY_S_F10},
  193.   {(unsigned char *)"S-F11",KEY_S_F11},
  194.   {(unsigned char *)"S-F12",KEY_S_F12},
  195.   {(unsigned char *)"S-HOME",KEY_S_HOME},
  196.   {(unsigned char *)"S-PGUP",KEY_S_PGUP},
  197.   {(unsigned char *)"S-PGDN",KEY_S_PGDN},
  198.   {(unsigned char *)"S-CURU",KEY_S_CURU},
  199.   {(unsigned char *)"S-CURD",KEY_S_CURD},
  200.   {(unsigned char *)"S-CURL",KEY_S_CURL},
  201.   {(unsigned char *)"S-CURR",KEY_S_CURR},
  202.   {(unsigned char *)"S-END",KEY_S_END},
  203.   {(unsigned char *)"S-INS",KEY_S_INS},
  204.   {(unsigned char *)"S-DEL",KEY_S_DEL},
  205.   {(unsigned char *)"S-CENTER",KEY_S_NUMCENTER},
  206.   {(unsigned char *)"S-NUMSTOP",KEY_S_NUMSTOP},
  207.   {(unsigned char *)"S-NUM0",KEY_S_NUM0},
  208.   {(unsigned char *)"S-NUM1",KEY_S_NUM1},
  209.   {(unsigned char *)"S-NUM2",KEY_S_NUM2},
  210.   {(unsigned char *)"S-NUM3",KEY_S_NUM3},
  211.   {(unsigned char *)"S-NUM4",KEY_S_NUM4},
  212.   {(unsigned char *)"S-NUM6",KEY_S_NUM6},
  213.   {(unsigned char *)"S-NUM7",KEY_S_NUM7},
  214.   {(unsigned char *)"S-NUM8",KEY_S_NUM8},
  215.   {(unsigned char *)"S-NUM9",KEY_S_NUM9},
  216. /* control characters */
  217.   {(unsigned char *)"C-A",KEY_C_a  },
  218.   {(unsigned char *)"C-B",KEY_C_b  },
  219.   {(unsigned char *)"C-C",KEY_C_c  },
  220.   {(unsigned char *)"C-D",KEY_C_d  },
  221.   {(unsigned char *)"C-E",KEY_C_e  },
  222.   {(unsigned char *)"C-F",KEY_C_f  },
  223.   {(unsigned char *)"C-G",KEY_C_g  },
  224.   {(unsigned char *)"C-H",KEY_C_h  },
  225.   {(unsigned char *)"C-I",KEY_C_i  },
  226.   {(unsigned char *)"C-J",KEY_C_j  },
  227.   {(unsigned char *)"C-K",KEY_C_k  },
  228.   {(unsigned char *)"C-L",KEY_C_l  },
  229.   {(unsigned char *)"C-M",KEY_C_m  },
  230.   {(unsigned char *)"C-N",KEY_C_n  },
  231.   {(unsigned char *)"C-O",KEY_C_o  },
  232.   {(unsigned char *)"C-P",KEY_C_p  },
  233.   {(unsigned char *)"C-Q",KEY_C_q  },
  234.   {(unsigned char *)"C-R",KEY_C_r  },
  235.   {(unsigned char *)"C-S",KEY_C_s  },
  236.   {(unsigned char *)"C-T",KEY_C_t  },
  237.   {(unsigned char *)"C-U",KEY_C_u  },
  238.   {(unsigned char *)"C-V",KEY_C_v  },
  239.   {(unsigned char *)"C-W",KEY_C_w  },
  240.   {(unsigned char *)"C-X",KEY_C_x  },
  241.   {(unsigned char *)"C-Y",KEY_C_y  },
  242.   {(unsigned char *)"C-Z",KEY_C_z  },
  243.   {(unsigned char *)"C-2",KEY_C_2  },
  244.   {(unsigned char *)"C-6",KEY_C_6  },
  245.   {(unsigned char *)"C--",KEY_C_MINUS  },
  246.   {(unsigned char *)"C-[",KEY_C_LBRACKET  },
  247.   {(unsigned char *)"C-]",KEY_C_RBRACKET  },
  248.   {(unsigned char *)"C-\\",KEY_C_BSLASH  },
  249.   {(unsigned char *)"C-ENTER",KEY_C_ENTER },
  250.   {(unsigned char *)"C-TAB",KEY_C_TAB},
  251.   {(unsigned char *)"C-BKSP",KEY_C_BKSP  },
  252.   {(unsigned char *)"C-F1",KEY_C_F1},
  253.   {(unsigned char *)"C-F2",KEY_C_F2},
  254.   {(unsigned char *)"C-F3",KEY_C_F3},
  255.   {(unsigned char *)"C-F4",KEY_C_F4},
  256.   {(unsigned char *)"C-F5",KEY_C_F5},
  257.   {(unsigned char *)"C-F6",KEY_C_F6},
  258.   {(unsigned char *)"C-F7",KEY_C_F7},
  259.   {(unsigned char *)"C-F8",KEY_C_F8},
  260.   {(unsigned char *)"C-F9",KEY_C_F9},
  261.   {(unsigned char *)"C-F10",KEY_C_F10},
  262.   {(unsigned char *)"C-F11",KEY_C_F11},
  263.   {(unsigned char *)"C-F12",KEY_C_F12},
  264.   {(unsigned char *)"C-HOME",KEY_C_HOME},
  265.   {(unsigned char *)"C-PGUP",KEY_C_PGUP},
  266.   {(unsigned char *)"C-PGDN",KEY_C_PGDN},
  267.   {(unsigned char *)"C-CURU",KEY_C_CURU},
  268.   {(unsigned char *)"C-CURD",KEY_C_CURD},
  269.   {(unsigned char *)"C-CURL",KEY_C_CURL},
  270.   {(unsigned char *)"C-CURR",KEY_C_CURR},
  271.   {(unsigned char *)"C-END",KEY_C_END},
  272.   {(unsigned char *)"C-INS",KEY_C_INS},
  273.   {(unsigned char *)"C-DEL",KEY_C_DEL},
  274.   {(unsigned char *)"C-CENTER",KEY_C_NUMCENTER},
  275.   {(unsigned char *)"C-NUMSTOP",KEY_C_NUMSTOP},
  276.   {(unsigned char *)"C-NUM0",KEY_C_NUM0},
  277.   {(unsigned char *)"C-NUM1",KEY_C_NUM1},
  278.   {(unsigned char *)"C-NUM2",KEY_C_NUM2},
  279.   {(unsigned char *)"C-NUM3",KEY_C_NUM3},
  280.   {(unsigned char *)"C-NUM4",KEY_C_NUM4},
  281.   {(unsigned char *)"C-NUM6",KEY_C_NUM6},
  282.   {(unsigned char *)"C-NUM7",KEY_C_NUM7},
  283.   {(unsigned char *)"C-NUM8",KEY_C_NUM8},
  284.   {(unsigned char *)"C-NUM9",KEY_C_NUM9},
  285.   {(unsigned char *)"C-PLUS",KEY_C_NUMPLUS},
  286.   {(unsigned char *)"C-MINUS",KEY_C_NUMMINUS},
  287.   {(unsigned char *)"C-SLASH",KEY_C_NUMSLASH},
  288.   {(unsigned char *)"C-STAR",KEY_C_NUMSTAR},
  289.   {(unsigned char *)"C-NUMENTER",KEY_C_NUMENTER},
  290. /* alt characters */
  291.   {(unsigned char *)"A-A",KEY_A_a},
  292.   {(unsigned char *)"A-B",KEY_A_b},
  293.   {(unsigned char *)"A-C",KEY_A_c},
  294.   {(unsigned char *)"A-D",KEY_A_d},
  295.   {(unsigned char *)"A-E",KEY_A_e},
  296.   {(unsigned char *)"A-F",KEY_A_f},
  297.   {(unsigned char *)"A-G",KEY_A_g},
  298.   {(unsigned char *)"A-H",KEY_A_h},
  299.   {(unsigned char *)"A-I",KEY_A_i},
  300.   {(unsigned char *)"A-J",KEY_A_j},
  301.   {(unsigned char *)"A-K",KEY_A_k},
  302.   {(unsigned char *)"A-L",KEY_A_l},
  303.   {(unsigned char *)"A-M",KEY_A_m},
  304.   {(unsigned char *)"A-N",KEY_A_n},
  305.   {(unsigned char *)"A-O",KEY_A_o},
  306.   {(unsigned char *)"A-P",KEY_A_p},
  307.   {(unsigned char *)"A-Q",KEY_A_q},
  308.   {(unsigned char *)"A-R",KEY_A_r},
  309.   {(unsigned char *)"A-S",KEY_A_s},
  310.   {(unsigned char *)"A-T",KEY_A_t},
  311.   {(unsigned char *)"A-U",KEY_A_u},
  312.   {(unsigned char *)"A-V",KEY_A_v},
  313.   {(unsigned char *)"A-W",KEY_A_w},
  314.   {(unsigned char *)"A-X",KEY_A_x},
  315.   {(unsigned char *)"A-Y",KEY_A_y},
  316.   {(unsigned char *)"A-Z",KEY_A_z},
  317.   {(unsigned char *)"A-0",KEY_A_0},
  318.   {(unsigned char *)"A-1",KEY_A_1},
  319.   {(unsigned char *)"A-2",KEY_A_2},
  320.   {(unsigned char *)"A-3",KEY_A_3},
  321.   {(unsigned char *)"A-4",KEY_A_4},
  322.   {(unsigned char *)"A-5",KEY_A_5},
  323.   {(unsigned char *)"A-6",KEY_A_6},
  324.   {(unsigned char *)"A-7",KEY_A_7},
  325.   {(unsigned char *)"A-8",KEY_A_8},
  326.   {(unsigned char *)"A-9",KEY_A_9},
  327.   {(unsigned char *)"A-`",KEY_A_BQUOTE},
  328.   {(unsigned char *)"A--",KEY_A_MINUS},
  329.   {(unsigned char *)"A-=",KEY_A_EQUAL},
  330.   {(unsigned char *)"A-[",KEY_A_LBRACKET},
  331.   {(unsigned char *)"A-]",KEY_A_RBRACKET},
  332.   {(unsigned char *)"A-\\",KEY_A_BSLASH},
  333.   {(unsigned char *)"A-;",KEY_A_SEMICOLON},
  334.   {(unsigned char *)"A-'",KEY_A_FQUOTE},
  335.   {(unsigned char *)"A-,",KEY_A_COMMA},
  336.   {(unsigned char *)"A-.",KEY_A_STOP},
  337.   {(unsigned char *)"A-/",KEY_A_FSLASH},
  338.   {(unsigned char *)"A-ENTER",KEY_A_ENTER},
  339.   {(unsigned char *)"A-TAB",KEY_A_TAB},
  340.   {(unsigned char *)"A-ESC",KEY_A_ESC },
  341.   {(unsigned char *)"A-BKSP",KEY_A_BKSP },
  342.   {(unsigned char *)"A-F1",KEY_A_F1},
  343.   {(unsigned char *)"A-F2",KEY_A_F2},
  344.   {(unsigned char *)"A-F3",KEY_A_F3},
  345.   {(unsigned char *)"A-F4",KEY_A_F4},
  346.   {(unsigned char *)"A-F5",KEY_A_F5},
  347.   {(unsigned char *)"A-F6",KEY_A_F6},
  348.   {(unsigned char *)"A-F7",KEY_A_F7},
  349.   {(unsigned char *)"A-F8",KEY_A_F8},
  350.   {(unsigned char *)"A-F9",KEY_A_F9},
  351.   {(unsigned char *)"A-F10",KEY_A_F10},
  352.   {(unsigned char *)"A-F11",KEY_A_F11},
  353.   {(unsigned char *)"A-F12",KEY_A_F12},
  354.   {(unsigned char *)"A-HOME",KEY_A_HOME},
  355.   {(unsigned char *)"A-PGUP",KEY_A_PGUP},
  356.   {(unsigned char *)"A-PGDN",KEY_A_PGDN},
  357.   {(unsigned char *)"A-CURU",KEY_A_CURU},
  358.   {(unsigned char *)"A-CURD",KEY_A_CURD},
  359.   {(unsigned char *)"A-CURL",KEY_A_CURL},
  360.   {(unsigned char *)"A-CURR",KEY_A_CURR},
  361.   {(unsigned char *)"A-END",KEY_A_END},
  362.   {(unsigned char *)"A-INS",KEY_A_INS},
  363.   {(unsigned char *)"A-DEL",KEY_A_DEL},
  364.   {(unsigned char *)"A-PLUS",KEY_A_NUMPLUS},
  365.   {(unsigned char *)"A-MINUS",KEY_A_NUMMINUS},
  366.   {(unsigned char *)"A-SLASH",KEY_A_NUMSLASH},
  367.   {(unsigned char *)"A-STAR",KEY_A_NUMSTAR},
  368.   {(unsigned char *)"A-NUMENTER",KEY_A_NUMENTER}
  369. #else
  370.   {(unsigned char *)"KEY_MIN"      ,KEY_MIN },
  371.   {(unsigned char *)"KEY_Help"     ,KEY_Help},
  372.   {(unsigned char *)"KEY_Do"       ,KEY_Do},
  373.   {(unsigned char *)"KEY_PF1"      ,KEY_PF1},
  374.   {(unsigned char *)"KEY_PF2"      ,KEY_PF2},
  375.   {(unsigned char *)"KEY_PF3"      ,KEY_PF3},
  376.   {(unsigned char *)"KEY_PF4"      ,KEY_PF4},
  377.   {(unsigned char *)"KEY_Pad0"     ,KEY_Pad0},
  378.   {(unsigned char *)"KEY_Pad1"     ,KEY_Pad1},
  379.   {(unsigned char *)"KEY_Pad2"     ,KEY_Pad2},
  380.   {(unsigned char *)"KEY_Pad3"     ,KEY_Pad3},
  381.   {(unsigned char *)"KEY_Pad4"     ,KEY_Pad4},
  382.   {(unsigned char *)"KEY_Pad5"     ,KEY_Pad5},
  383.   {(unsigned char *)"KEY_Pad6"     ,KEY_Pad6},
  384.   {(unsigned char *)"KEY_Pad7"     ,KEY_Pad7},
  385.   {(unsigned char *)"KEY_Pad8"     ,KEY_Pad8},
  386.   {(unsigned char *)"KEY_Pad9"     ,KEY_Pad9},
  387.   {(unsigned char *)"KEY_PadEnter" ,KEY_PadEnter},
  388.   {(unsigned char *)"KEY_PadMinus" ,KEY_PadMinus},
  389.   {(unsigned char *)"KEY_PadPeriod",KEY_PadPeriod},
  390.   {(unsigned char *)"KEY_PadComma" ,KEY_PadComma},
  391.   {(unsigned char *)"KEY_Pad00"    ,KEY_Pad00},
  392.   {(unsigned char *)"KEY_BackTab"  ,KEY_BackTab},
  393.   {(unsigned char *)"KEY_Find"     ,KEY_Find},
  394.   {(unsigned char *)"KEY_InsertHere",KEY_InsertHere},
  395.   {(unsigned char *)"KEY_Remove"   ,KEY_Remove},
  396.   {(unsigned char *)"KEY_Select"   ,KEY_Select},
  397.   {(unsigned char *)"KEY_PrevScreen",KEY_PrevScreen},
  398.   {(unsigned char *)"KEY_PrevScrn" ,KEY_PrevScrn},
  399.   {(unsigned char *)"KEY_NextScreen",KEY_NextScreen},
  400.   {(unsigned char *)"KEY_NextScrn" ,KEY_NextScrn},
  401.   {(unsigned char *)"KEY_SF1"      ,KEY_SF1},
  402.   {(unsigned char *)"KEY_SF2"      ,KEY_SF2},
  403.   {(unsigned char *)"KEY_SF3"      ,KEY_SF3},
  404.   {(unsigned char *)"KEY_SF4"      ,KEY_SF4},
  405.   {(unsigned char *)"KEY_SF5"      ,KEY_SF5},
  406.   {(unsigned char *)"KEY_SF6"      ,KEY_SF6},
  407.   {(unsigned char *)"KEY_SF7"      ,KEY_SF7},
  408.   {(unsigned char *)"KEY_SF8"      ,KEY_SF8},
  409.   {(unsigned char *)"KEY_SF9"      ,KEY_SF9},
  410.   {(unsigned char *)"KEY_SF10"     ,KEY_SF10},
  411.   {(unsigned char *)"KEY_SF11"     ,KEY_SF11},
  412.   {(unsigned char *)"KEY_SF12"     ,KEY_SF12},
  413.   {(unsigned char *)"KEY_SF13"     ,KEY_SF13},
  414.   {(unsigned char *)"KEY_SF14"     ,KEY_SF14},
  415.   {(unsigned char *)"KEY_SF15"     ,KEY_SF15},
  416.   {(unsigned char *)"KEY_SHelp"    ,KEY_SHelp},
  417.   {(unsigned char *)"KEY_SF16"     ,KEY_SF16},
  418.   {(unsigned char *)"KEY_SDo"      ,KEY_SDo},
  419.   {(unsigned char *)"KEY_SF17"     ,KEY_SF17},
  420.   {(unsigned char *)"KEY_SF18"     ,KEY_SF18},
  421.   {(unsigned char *)"KEY_SF19"     ,KEY_SF19},
  422.   {(unsigned char *)"KEY_SF20"     ,KEY_SF20},
  423.   {(unsigned char *)"ControlA"     ,ControlA},
  424.   {(unsigned char *)"ControlB"     ,ControlB},
  425.   {(unsigned char *)"ControlC"     ,ControlC},
  426.   {(unsigned char *)"ControlD"     ,ControlD},
  427.   {(unsigned char *)"ControlE"     ,ControlE},
  428.   {(unsigned char *)"ControlF"     ,ControlF},
  429.   {(unsigned char *)"ControlG"     ,ControlG},
  430.   {(unsigned char *)"ControlH"     ,ControlH},
  431.   {(unsigned char *)"BackSpace"    ,BackSpace},
  432.   {(unsigned char *)"ControlI"     ,ControlI},
  433.   {(unsigned char *)"Tab"          ,Tab},
  434.   {(unsigned char *)"ControlJ"     ,ControlJ},
  435.   {(unsigned char *)"LineFeed"     ,LineFeed},
  436.   {(unsigned char *)"ControlK"     ,ControlK},
  437.   {(unsigned char *)"ControlL"     ,ControlL},
  438.   {(unsigned char *)"ControlM"     ,ControlM},
  439.   {(unsigned char *)"Return"       ,Return},
  440.   {(unsigned char *)"ControlN"     ,ControlN},
  441.   {(unsigned char *)"ControlO"     ,ControlO},
  442.   {(unsigned char *)"ControlP"     ,ControlP},
  443.   {(unsigned char *)"ControlQ"     ,ControlQ},
  444.   {(unsigned char *)"ControlR"     ,ControlR},
  445.   {(unsigned char *)"ControlS"     ,ControlS},
  446.   {(unsigned char *)"ControlT"     ,ControlT},
  447.   {(unsigned char *)"ControlU"     ,ControlU},
  448.   {(unsigned char *)"ControlV"     ,ControlV},
  449.   {(unsigned char *)"ControlW"     ,ControlW},
  450.   {(unsigned char *)"ControlX"     ,ControlX},
  451.   {(unsigned char *)"ControlY"     ,ControlY},
  452.   {(unsigned char *)"ControlZ"     ,ControlZ},
  453.   {(unsigned char *)"Escape"       ,Escape},
  454.   {(unsigned char *)"Del"          ,Del},
  455.   {(unsigned char *)"CSI"          ,CSI},
  456.   {(unsigned char *)"KEY_BREAK"    ,KEY_BREAK },
  457.   {(unsigned char *)"KEY_DOWN"     ,KEY_DOWN },
  458.   {(unsigned char *)"KEY_UP"       ,KEY_UP },
  459.   {(unsigned char *)"KEY_LEFT"     ,KEY_LEFT },
  460.   {(unsigned char *)"KEY_RIGHT"    ,KEY_RIGHT},
  461.   {(unsigned char *)"KEY_HOME"     ,KEY_HOME},
  462.   {(unsigned char *)"KEY_BACKSPACE",KEY_BACKSPACE},
  463.   {(unsigned char *)"KEY_F0"       ,KEY_F0},
  464.   {(unsigned char *)"KEY_F1"       ,(KEY_F(0)+1)},
  465.   {(unsigned char *)"KEY_F2"       ,(KEY_F(0)+2)},
  466.   {(unsigned char *)"KEY_F3"       ,(KEY_F(0)+3)},
  467.   {(unsigned char *)"KEY_F4"       ,(KEY_F(0)+4)},
  468.   {(unsigned char *)"KEY_F5"       ,(KEY_F(0)+5)},
  469.   {(unsigned char *)"KEY_F6"       ,(KEY_F(0)+6)},
  470.   {(unsigned char *)"KEY_F7"       ,(KEY_F(0)+7)},
  471.   {(unsigned char *)"KEY_F8"       ,(KEY_F(0)+8)},
  472.   {(unsigned char *)"KEY_F9"       ,(KEY_F(0)+9)},
  473.   {(unsigned char *)"KEY_F10"      ,(KEY_F(0)+10)},
  474.   {(unsigned char *)"KEY_F11"      ,(KEY_F(0)+11)},
  475.   {(unsigned char *)"KEY_F12"      ,(KEY_F(0)+12)},
  476.   {(unsigned char *)"KEY_F13"      ,(KEY_F(0)+13)},
  477.   {(unsigned char *)"KEY_F14"      ,(KEY_F(0)+14)},
  478.   {(unsigned char *)"KEY_F15"      ,(KEY_F(0)+15)},
  479.   {(unsigned char *)"KEY_F16"      ,(KEY_F(0)+16)},
  480.   {(unsigned char *)"KEY_F17"      ,(KEY_F(0)+17)},
  481.   {(unsigned char *)"KEY_F18"      ,(KEY_F(0)+18)},
  482.   {(unsigned char *)"KEY_F19"      ,(KEY_F(0)+19)},
  483.   {(unsigned char *)"KEY_F20"      ,(KEY_F(0)+20)},
  484.   {(unsigned char *)"KEY_F21"      ,(KEY_F(0)+21)},
  485.   {(unsigned char *)"KEY_F22"      ,(KEY_F(0)+22)},
  486.   {(unsigned char *)"KEY_F23"      ,(KEY_F(0)+23)},
  487.   {(unsigned char *)"KEY_F24"      ,(KEY_F(0)+24)},
  488.   {(unsigned char *)"KEY_F25"      ,(KEY_F(0)+25)},
  489.   {(unsigned char *)"KEY_F26"      ,(KEY_F(0)+26)},
  490.   {(unsigned char *)"KEY_F27"      ,(KEY_F(0)+27)},
  491.   {(unsigned char *)"KEY_F28"      ,(KEY_F(0)+28)},
  492.   {(unsigned char *)"KEY_F29"      ,(KEY_F(0)+29)},
  493.   {(unsigned char *)"KEY_F30"      ,(KEY_F(0)+30)},
  494.   {(unsigned char *)"KEY_F31"      ,(KEY_F(0)+31)},
  495.   {(unsigned char *)"KEY_F32"      ,(KEY_F(0)+32)},
  496.   {(unsigned char *)"KEY_F33"      ,(KEY_F(0)+33)},
  497.   {(unsigned char *)"KEY_F34"      ,(KEY_F(0)+34)},
  498.   {(unsigned char *)"KEY_F35"      ,(KEY_F(0)+35)},
  499.   {(unsigned char *)"KEY_F36"      ,(KEY_F(0)+36)},
  500.   {(unsigned char *)"KEY_F37"      ,(KEY_F(0)+37)},
  501.   {(unsigned char *)"KEY_F38"      ,(KEY_F(0)+38)},
  502.   {(unsigned char *)"KEY_F39"      ,(KEY_F(0)+39)},
  503.   {(unsigned char *)"KEY_F40"      ,(KEY_F(0)+40)},
  504.   {(unsigned char *)"KEY_F41"      ,(KEY_F(0)+41)},
  505.   {(unsigned char *)"KEY_F42"      ,(KEY_F(0)+42)},
  506.   {(unsigned char *)"KEY_F43"      ,(KEY_F(0)+43)},
  507.   {(unsigned char *)"KEY_F44"      ,(KEY_F(0)+44)},
  508.   {(unsigned char *)"KEY_F45"      ,(KEY_F(0)+45)},
  509.   {(unsigned char *)"KEY_F46"      ,(KEY_F(0)+46)},
  510.   {(unsigned char *)"KEY_F47"      ,(KEY_F(0)+47)},
  511.   {(unsigned char *)"KEY_F48"      ,(KEY_F(0)+48)},
  512.   {(unsigned char *)"KEY_F49"      ,(KEY_F(0)+49)},
  513.   {(unsigned char *)"KEY_F50"      ,(KEY_F(0)+50)},
  514.   {(unsigned char *)"KEY_F51"      ,(KEY_F(0)+51)},
  515.   {(unsigned char *)"KEY_F52"      ,(KEY_F(0)+52)},
  516.   {(unsigned char *)"KEY_F53"      ,(KEY_F(0)+53)},
  517.   {(unsigned char *)"KEY_F54"      ,(KEY_F(0)+54)},
  518.   {(unsigned char *)"KEY_F55"      ,(KEY_F(0)+55)},
  519.   {(unsigned char *)"KEY_F56"      ,(KEY_F(0)+56)},
  520.   {(unsigned char *)"KEY_F57"      ,(KEY_F(0)+57)},
  521.   {(unsigned char *)"KEY_F58"      ,(KEY_F(0)+58)},
  522.   {(unsigned char *)"KEY_F59"      ,(KEY_F(0)+59)},
  523.   {(unsigned char *)"KEY_F60"      ,(KEY_F(0)+60)},
  524.   {(unsigned char *)"KEY_F61"      ,(KEY_F(0)+61)},
  525.   {(unsigned char *)"KEY_F62"      ,(KEY_F(0)+62)},
  526.   {(unsigned char *)"KEY_F63"      ,(KEY_F(0)+63)},
  527.   {(unsigned char *)"KEY_F64"      ,(KEY_F(0)+64)},
  528.   {(unsigned char *)"KEY_DL"       ,KEY_DL},
  529.   {(unsigned char *)"KEY_IL"       ,KEY_IL},
  530.   {(unsigned char *)"KEY_DC"       ,KEY_DC},
  531.   {(unsigned char *)"KEY_IC"       ,KEY_IC},
  532.   {(unsigned char *)"KEY_EIC"      ,KEY_EIC},
  533.   {(unsigned char *)"KEY_CLEAR"    ,KEY_CLEAR},
  534.   {(unsigned char *)"KEY_EOS"      ,KEY_EOS},
  535.   {(unsigned char *)"KEY_EOL"      ,KEY_EOL},
  536.   {(unsigned char *)"KEY_SF"       ,KEY_SF},
  537.   {(unsigned char *)"KEY_SR"       ,KEY_SR},
  538.   {(unsigned char *)"KEY_NPAGE"    ,KEY_NPAGE},
  539.   {(unsigned char *)"KEY_PPAGE"    ,KEY_PPAGE},
  540.   {(unsigned char *)"KEY_STAB"     ,KEY_STAB},
  541.   {(unsigned char *)"KEY_CTAB"     ,KEY_CTAB},
  542.   {(unsigned char *)"KEY_CATAB"    ,KEY_CATAB},
  543.   {(unsigned char *)"KEY_ENTER"    ,KEY_ENTER},
  544.   {(unsigned char *)"KEY_SRESET"   ,KEY_SRESET},
  545.   {(unsigned char *)"KEY_RESET"    ,KEY_RESET},
  546.   {(unsigned char *)"KEY_PRINT"    ,KEY_PRINT},
  547.   {(unsigned char *)"KEY_LL"       ,KEY_LL},
  548.   {(unsigned char *)"KEY_A1"       ,KEY_A1},
  549.   {(unsigned char *)"KEY_A3"       ,KEY_A3},
  550.   {(unsigned char *)"KEY_B2"       ,KEY_B2},
  551.   {(unsigned char *)"KEY_C1"       ,KEY_C1},
  552.   {(unsigned char *)"KEY_C3"       ,KEY_C3},
  553.   {(unsigned char *)"KEY_BTAB"     ,KEY_BTAB},
  554.   {(unsigned char *)"KEY_BEG"      ,KEY_BEG},
  555.   {(unsigned char *)"KEY_CANCEL"   ,KEY_CANCEL},
  556.   {(unsigned char *)"KEY_CLOSE"    ,KEY_CLOSE},
  557.   {(unsigned char *)"KEY_COMMAND"  ,KEY_COMMAND},
  558.   {(unsigned char *)"KEY_COPY"     ,KEY_COPY},
  559.   {(unsigned char *)"KEY_CREATE"   ,KEY_CREATE},
  560.   {(unsigned char *)"KEY_END"      ,KEY_END},
  561.   {(unsigned char *)"KEY_EXIT"     ,KEY_EXIT},
  562.   {(unsigned char *)"KEY_FIND"     ,KEY_FIND},
  563.   {(unsigned char *)"KEY_HELP"     ,KEY_HELP},
  564.   {(unsigned char *)"KEY_MARK"     ,KEY_MARK},
  565.   {(unsigned char *)"KEY_MESSAGE"  ,KEY_MESSAGE},
  566.   {(unsigned char *)"KEY_MOVE"     ,KEY_MOVE},
  567.   {(unsigned char *)"KEY_NEXT"     ,KEY_NEXT},
  568.   {(unsigned char *)"KEY_OPEN"     ,KEY_OPEN},
  569.   {(unsigned char *)"KEY_OPTIONS"  ,KEY_OPTIONS},
  570.   {(unsigned char *)"KEY_PREVIOUS" ,KEY_PREVIOUS},
  571.   {(unsigned char *)"KEY_REDO"     ,KEY_REDO},
  572.   {(unsigned char *)"KEY_REFERENCE",KEY_REFERENCE},
  573.   {(unsigned char *)"KEY_REFRESH"  ,KEY_REFRESH},
  574.   {(unsigned char *)"KEY_REPLACE"  ,KEY_REPLACE},
  575.   {(unsigned char *)"KEY_RESTART"  ,KEY_RESTART},
  576.   {(unsigned char *)"KEY_RESUME"   ,KEY_RESUME},
  577.   {(unsigned char *)"KEY_SAVE"     ,KEY_SAVE},
  578.   {(unsigned char *)"KEY_SBEG"     ,KEY_SBEG},
  579.   {(unsigned char *)"KEY_SCANCEL"  ,KEY_SCANCEL},
  580.   {(unsigned char *)"KEY_SCOMMAND" ,KEY_SCOMMAND},
  581.   {(unsigned char *)"KEY_SCOPY"    ,KEY_SCOPY},
  582.   {(unsigned char *)"KEY_SCREATE"  ,KEY_SCREATE},
  583.   {(unsigned char *)"KEY_SDC"      ,KEY_SDC},
  584.   {(unsigned char *)"KEY_SDL"      ,KEY_SDL},
  585.   {(unsigned char *)"KEY_SELECT"   ,KEY_SELECT},
  586.   {(unsigned char *)"KEY_SEND"     ,KEY_SEND},
  587.   {(unsigned char *)"KEY_SEOL"     ,KEY_SEOL},
  588.   {(unsigned char *)"KEY_SEXIT"    ,KEY_SEXIT},
  589.   {(unsigned char *)"KEY_SFIND"    ,KEY_SFIND},
  590.   {(unsigned char *)"KEY_SHELP"    ,KEY_SHELP},
  591.   {(unsigned char *)"KEY_SHOME"    ,KEY_SHOME},
  592.   {(unsigned char *)"KEY_SIC"      ,KEY_SIC},
  593.   {(unsigned char *)"KEY_SLEFT"    ,KEY_SLEFT},
  594.   {(unsigned char *)"KEY_SMESSAGE" ,KEY_SMESSAGE},
  595.   {(unsigned char *)"KEY_SMOVE"    ,KEY_SMOVE},
  596.   {(unsigned char *)"KEY_SNEXT"    ,KEY_SNEXT},
  597.   {(unsigned char *)"KEY_SOPTIONS" ,KEY_SOPTIONS},
  598.   {(unsigned char *)"KEY_SPREVIOUS",KEY_SPREVIOUS},
  599.   {(unsigned char *)"KEY_SPRINT"   ,KEY_SPRINT},
  600.   {(unsigned char *)"KEY_SREDO"    ,KEY_SREDO},
  601.   {(unsigned char *)"KEY_SREPLACE" ,KEY_SREPLACE},
  602.   {(unsigned char *)"KEY_SRIGHT"   ,KEY_SRIGHT},
  603.   {(unsigned char *)"KEY_SRSUME"   ,KEY_SRSUME},
  604.   {(unsigned char *)"KEY_SSAVE"    ,KEY_SSAVE},
  605.   {(unsigned char *)"KEY_SSUSPEND" ,KEY_SSUSPEND},
  606.   {(unsigned char *)"KEY_SUNDO"    ,KEY_SUNDO},
  607.   {(unsigned char *)"KEY_SUSPEND"  ,KEY_SUSPEND},
  608.   {(unsigned char *)"KEY_UNDO"     ,KEY_UNDO},
  609.   {(unsigned char *)"KEY_CLEFT"    ,KEY_CLEFT},
  610.   {(unsigned char *)"KEY_CRIGHT"   ,KEY_CRIGHT},
  611.   {(unsigned char *)"KEY_CUP"      ,KEY_CUP},
  612.   {(unsigned char *)"KEY_CDOWN"    ,KEY_CDOWN},
  613.   {(unsigned char *)"KEY_CHOME"    ,KEY_CHOME},
  614.   {(unsigned char *)"KEY_CEND"     ,KEY_CEND},
  615.   {(unsigned char *)"KEY_CPGUP"    ,KEY_CPGUP},
  616.   {(unsigned char *)"KEY_CPGDN"    ,KEY_CPGDN},
  617.   {(unsigned char *)"KEY_MAX"      ,KEY_MAX}
  618. #endif
  619. };
  620.